Code4Lib Journal WordPress Input Guidelines

From Code4Lib
Jump to: navigation, search

Please follow the guidelines below when creating or editing Code4Lib Journal articles in WordPress. Enter all articles as "Posts".

The WP Admin Interface

To get to WordPress interface for entering an article, choose 'Site Admin' from the footer of any Journal page, login if necessary, and then choose Write//Write Post from the WP admin menus. (Alternatively, go to If you don't have a WordPress editor login and need one, talk to our web admin (Tom Keays).

Proofs for Authors

A read-only login that is shared with authors can be found in the 'Administrivia' tab/worksheet of our Google Docs article tracking spreadsheet.


Title, including the subtitle, goes in the "Title" field.

Article titles are in Title Case -- all major words capitalized. The title is followed by an abstract, which will be pulled from the excerpt section lower on the post page, and byline of the form "by Author" or "by Author 1, Author 2, and Author 3".

Article Content

The body of the article goes in the "Post" field. Use HTML markup appropriately and semantically, e.g., <em> for emphasized text, <strong> for strongly emphasized text, <blockquote> when quoting blocks of text. Avoid such monstrosities as <font> and <blink>.


The top-level header (<h1>) is used for the title of the post, so start with second-level headers (<h2>) for sections of the article, <h3> for sub-sections, <h4> if you need a lower level. <h2> are in "Title Case" -- all words capitalized, short words (the, a, in, up, over, about) should not be. <h3> and <h4> are in "Sentence case" -- only the first word is capitalized. Any header from second- to sixth-level may be used as appropriate.

Pasting from Word

If you just paste content from Word into WP, it ends up with REALLY BAD html. Fortunately, WP has a built-in feature to help with this. Open the 'advanced toolbar' in editing GUI (right-most link), then click on the paste-from-word icon. This transforms Word's html into really nice pretty html. Alternatively, use the Word DOC to HTML converter.

Figures & Tables

Figures and tables are centered, placed inside a P or DIV with class of "caption". In general, we bold the figure / table label using the strong tag.

For example:

<p class = "caption">
<img src = "....">
<strong>Figure X.</strong> How to Caption an Image. 

<div class = "caption">
<strong>Table X.</strong> How to Caption a Table. 

Captions for figures appear beneath the figure, centered, with "Figure X:" in bold, the descriptive text in sentence case, plain text.

Captions for tables and code appear above the table, centered, with "Table X:" in bold, the descriptive text in sentence case, plain text.

Images and Attached Content

In-line images should be no wider than 500px. See above section for captioning and image

Uploading files manually

To upload images or other attached media / files, you will need to upload the content to our ibiblio host site manually.

To do that, sftp to See the Administrivia tab in the shared "C4LJ Article Tracking" doc for the username and password.

Change directory to: /public/vhost/c/c4lj/html/media

in there you'll find an "issue1" subdir (or issueX subdir--if you don't, create one or ask for help creating one!). Inside THERE, create a subdir with the last name of the first author, and put all your image and other attached content in there. This sort of url will be used in the "<img src>" tag: /media/issue1/smith/imagename.png

Add to your img src or a href's as desired. You can use this not just for images, but for extended code attachments, etc. (see below)

Uploading media via WordPress

Before uploading files to WordPress, you will need to change permissions on the directory where you are putting the files.

  1. Login to Ask Tom Keays for the password for the c4ljeditor account (or see this post on c4lj-articles).
  2. Change the directory to /public/vhost/c/c4lj/html/wp-content/uploads/
  3. WordPress tries to write the files to /public/vhost/c/c4lj/html/wp-content/uploads/[current year]/[current month]. If the current year or month directory does not yet exist, create them, "mkdir [current year]" or mkdir "[current month]" in the appropriate directory. Creating the directory while logged in makes the owner and group of the directory c4ljeditor and c4lj respectively. Wordpress will create the directories as nobody/nobody.
  4. Change the permissions on the [current month] directory from 755 to 777, "chmod 777 [current month]".
  5. In the WordPress editor, click the "Add an Image" button.
  6. Browse to and select your image/file.
  7. Click the Upload button.
  8. File in the Alternate text and Caption fields.
  9. Select the size of the image you want to display in the article.
  10. Click "Insert into Post".
  11. On the server, change the permissions on the current month's directory back to 775, "chmod 775 [current month]"


We haven't had too much video, but we just had one (a screencast). The option we used was hosting on Upload the video, click on the IA 'pillars' icon on the resulting video on the page to get an 'iframe' embed code, which works fine in our wordpress html source, and I believe the infrastructure will take care of translating the video to multiple formats and delivering in the proper format for a given browser. Very convenient.

Include a visible link to the URL for the individual video page as a caption, so printed or otherwise captured versions of the article will always have that link.

You don't need to use if you or we figure out a better way, it's just one option that worked very conveniently so far.


If code is attached as a file, follow the directions above for attached images, except:

Put all inline code in <pre> tags.

Code Highlighting

If the code is in a supported language, we can do syntax highlighting.

ibiblio has a PHPS extension, so if you an "s" on the end of .php files, it does syntax highlighting for you, e.g.:


Code samples entered as preformatted text, as in the following example, are automagically color highlighted in Wordpress by the SyntaxHighlighter plugin:

[sourcecode language='php']
RAW HTML/PHP/XML/Etc. code goes here; change language (in above line) as needed

If the language parameter is not set, it will default to "text" (no syntax highlighting). Supported languages include cpp, c, c++, c#, c-sharp, csharp, css, delphi, java, js, jscript, javascript, pascal, php, py, python, rb, ruby, rails, ror, sql, vb,, xml, html, xhtml, and xslt. Pretty much everything except perl. For a full list consult:

Note: do not surround code with <pre> tags, as the [sourcecode] tag itself will generate the necessary HTML.

For more subtleties of code formatting, see this gist from editor Péter Király

Ampersand Issues

We've had some problems with ampersand handling in the sourcecode sections. If you notice extra amp;s in your article, such as "&amp;amp;" and "&amp;amp;amp;", and you're comfortable using only the HTML editor for article entry, try checking the "Disable the visual editor when writing" box on your profile page in the admin.


Abstracts should be placed in the Excerpt box, displayed a little ways below the "Post" field. If you do not see the Excerpt box, look under "Screen Options" in the top right of the page. Selecting the down arrow will display fields to show on the screen. Make sure that 'Excerpt' is selected. This will display the Excerpt (abstract) input box on the page.

Use HTML markup as appropriate. What you put in this field is what will be distributed in our syndication feed and what will appear before the article as the abstract.

Assigned editors are ultimately responsible for a good abstract. Authors aren't always the best at writing good abstracts for their articles, you should probably revise or even write a new one from scratch as necessary, even when the author has provided one. Some of the abstracts for my assigned articles haven't even mentioned what I consider the most significant features of the article.

Since indexes (like EBSCO) may end up indexing abstracts and not full text (and even full text indexes may weigh abstracts more highly), the abstract should probably include any important terms that should 'hit' on the article, such as key technologies or concepts.

I've found that extracting sentences or clauses from the article itself is a good way to build an abstract that will represent the article as the authors intended. The conclusion section is often a good place to look for such key sentences/clauses.

Final abstracts should be passed by the authors for approval.


We would like to provide COinS information with every appropriate citation that does not have a publically accessible url.

It appears the COinS generator at is no longer in service. An alternative is Zotero's stand alone citation software. After creating a citation, simply right click the citation and choose export / format: coins.

  • Paste the output provided at the end of the reference in HTML. You will need to delete the line breaks inserted into the output created by the generator for it to work properly.
  • COinS should really always have an ISSN or ISBN.
  • Inside the span tag, put the string "(COinS)" with a link to our coins explanation page. Ie:
<a href="">(COinS)</a>

This is so the user without a browser extension will see that something is there she might be interested in, and get an explanation of COinS and how to make use of it. For an example see the References section of a published article including coins.

Endnotes style and HTML coding

  • Endnote number in text: The number is the link which appears in square brackets. Square brackets themselves are not part of the link. HTML coding for the text: [<a id="ref1" href="#note1">1</a>]
  • The link should work both ways. So, the endnote will link back to the text. HTML coding for the endnote: [<a id="note1" href="#ref1">1</a>]

Author Information

Start off each article with a paragraph stating the name(s) of the author(s). Something simple like "By Jonathan Rochkind". If desired, the author's name can be a link to something appropriate.

End each article with a second-level header that says "About the Author(s)", with class="abouttheauthor" set. Then give a short paragraph about each author. Italicize the author's name when it is first used (for example, "Foo Bar is a librarian at..."). We do want to have some kind of contact information published (personal web page, email address (obscured if desired), etc.) for each author.

There is a box beneath the article-editing box with the label "Author(s)". Anything you put in this field will be treated as the author of the article. This will show up in the ToC and in the syndication feeds. If you don't populate this field, WordPress will use the username of the editor, instead.


Posts will have "Uncagetorized" checked by default. Uncheck that box, and check the box next to the current issue, which will be a subcategory of "Issues." Do not check the "Issues" category. We generally do not add tags, except for Conference reviews

WordPress Buttons

Saves the article, sets the post status to whatever option is selected in the Publish Status form.
Saves the article, sets the post status to Pending Review and assigns a timestamp to the article.

If an issue is not yet published, setting the post status to "Published" or clicking the "Publish" button will set the article to "Pending Review" status. If the issue is already published, this would actually publish the article.

WordPress Post Status

An article has four possible statuses. However, only the first three statuses are available to editors.

Use for not yet complete articles. Only editors can see these.
Pending Review
Use for sharing the article with authors. Editors and anyone logged in with user ID 17 (i.e., the author account) can see these. See this post on c4lj-articles for the login information for the author account (username: author).
We don't use this option anymore.
A published post is visible to everyone. It is part of the RSS feed. If you're editing an already published post, don't select anything in the post status form, just hit Save.

Publishing an Issue

  1. Let everyone on the c4lj-articles list know you are getting ready to publish (so they can save and close any open articles).
  2. Log in to WordPress
  3. Make sure that all articles for the issue have the correct issue category selected and have been set to 'Pending Review'. Make sure that the "Uncategorized" and "Issues" categories are unchecked (only the specific issue should be selected).
  4. Sanity check: count the number of posts which should appear in the publish list
  5. Click on Posts -> Issues (on the left side)
  6. Click on "Publish" for the issue you'd like to publish.
    1. You'll get a list of every "Pending Review" article in that issue. Make sure the number of articles in the list matches your previous count. Don't see all the articles you think you should see? They could be still in Draft status, or not in the correct Issue category, or still have "Uncategorized" selected, or someone may still have it in edit mode. Go back to the posts list and make any necessary changes, and start from #5 again.
  7. Drag and drop the article titles until they're in the order you want. The order you see there is the order you'll see on the home page (and probably the opposite of the order you'll see in your feed reader).
    1. Note: It's the coordinating editor's responsibility to decide what order he or she would like the articles to show up in, and order them appropriately when publishing the issue. In general, we try to put the articles with the widest appeal first, and special types (columns, special reports, book reviews, etc.) at the end.
  8. Click on Posts -> Categories (on the left side)
  9. Make sure all three fields for the current issue are filled in and correct:
    1. The human-readable name of the issue goes into the Name field -- e.g., "Issue 15".
    2. The date of publication goes into the Description field -- e.g., "2011-10-31".
    3. The URL name goes into the Slug field -- e.g., "issue15" would give the URL of the issue,
  10. Click "Publish Issue" (optionally setting the publication time, first). Setting the time should only have an impact on readers who are not logged into the c4lj site. Editors will be able to see the published articles.
  11. Go to the Journal front page; check the number of articles is correct (again) and that they are in the right order. If there is a problem, go back to the admin interface, click on Posts -> Issues and click Unpublish for the issue. Make whatever corrections are needed and proceed from #5 again.
  12. Once the issue is finally published, go to Code4Lib_Journal_Entries_in_Directory_of_Open_Access_Journals and follow the directions to upload the issue metadata to DOAJ.
  13. Submit URLS to Internet Archives for harvest (Wayback Submission Script )
  14. Send out announcements (see Code4Lib_Journal_Publicity_Venues)
  15. Update Coordinating Editor on the Editorial Committee page to state the name of the editor for the next issue.


See editors' list for how to make corrections. Generally, use an Errata or Correction section at the end with information about the change that was made and have the actual text link down to that section. See also Code4Lib_Corrections