R/entities.R

# Copyright 2011-2014 Meik Michalke <meik.michalke@hhu.de>
#
# This file is part of the R package roxyPackage.
#
# roxyPackage is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# roxyPackage is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with roxyPackage.  If not, see <http://www.gnu.org/licenses/>.


#' Translate character string into HTML entities
#'
#' @param string Character string to be translated.
#' @param collapse Logical, if \code{TRUE} one single string is returned
#' @return Either a named character vector, one element for each character, or a single string.
#' @export
#' @examples
#' entities("foo_bar")

entities <- function(string, collapse=TRUE){
  text <- unlist(strsplit(as.character(string), ""))
  entity.ids <- c(paste0("&#", 0:1000, ";"))
  entity.names <- c(
    "\uFFFD", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1",
    "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\"", "]", "^", "_", "`", "a", "b", "c",
    "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "", "\u20AC", "\u0081", "\u201A", "\u0192", "\u201E", "\u2026", "\u2020", "\u2021", "\u02C6", "\u2030", "\u0160", "\u2039", "\u0152", "\u008D", "\u017D", "\u008F", "\u0090", "\u2018", "\u2019", "\u201C", "\u201D", "\u2022",
    "\u2013", "\u2014", "\u02DC", "\u2122", "\u0161", "\u203A", "\u0153", "\u009D", "\u017E", "\u0178", " ", "\u00A1", "\u00A2", "\u00A3", "\u00A4", "\u00A5", "\u00A6", "\u00A7", "\u00A8", "\u00A9", "\u00AA", "\u00AB", "\u00AC", "", "\u00AE", "\u00AF", "\u00B0", "\u00B1", "\u00B2", "\u00B3", "\u00B4", "\u00B5", "\u00B6", "\u00B7", "\u00B8", "\u00B9", "\u00BA", "\u00BB", "\u00BC", "\u00BD", "\u00BE", "\u00BF", "\u00C0", "\u00C1", "\u00C2", "\u00C3", "\u00C4", "\u00C5", "\u00C6", "\u00C7",
    "\u00C8", "\u00C9", "\u00CA", "\u00CB", "\u00CC", "\u00CD", "\u00CE", "\u00CF", "\u00D0", "\u00D1", "\u00D2", "\u00D3", "\u00D4", "\u00D5", "\u00D6", "\u00D7", "\u00D8", "\u00D9", "\u00DA", "\u00DB", "\u00DC", "\u00DD", "\u00DE", "\u00DF", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6", "\u00E7", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u00F0", "\u00F1", "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F7", "\u00F8", "\u00F9",
    "\u00FA", "\u00FB", "\u00FC", "\u00FD", "\u00FE", "\u00FF", "\u0100", "\u0101", "\u0102", "\u0103", "\u0104", "\u0105", "\u0106", "\u0107", "\u0108", "\u0109", "\u010A", "\u010B", "\u010C", "\u010D", "\u010E", "\u010F", "\u0110", "\u0111", "\u0112", "\u0113", "\u0114", "\u0115", "\u0116", "\u0117", "\u0118", "\u0119", "\u011A", "\u011B", "\u011C", "\u011D", "\u011E", "\u011F", "\u0120", "\u0121", "\u0122", "\u0123", "\u0124", "\u0125", "\u0126", "\u0127", "\u0128", "\u0129", "\u012A", "\u012B",
    "\u012C", "\u012D", "\u012E", "\u012F", "\u0130", "\u0131", "\u0132", "\u0133", "\u0134", "\u0135", "\u0136", "\u0137", "\u0138", "\u0139", "\u013A", "\u013B", "\u013C", "\u013D", "\u013E", "\u013F", "\u0140", "\u0141", "\u0142", "\u0143", "\u0144", "\u0145", "\u0146", "\u0147", "\u0148", "\u0149", "\u014A", "\u014B", "\u014C", "\u014D", "\u014E", "\u014F", "\u0150", "\u0151", "\u0152", "\u0153", "\u0154", "\u0155", "\u0156", "\u0157", "\u0158", "\u0159", "\u015A", "\u015B", "\u015C", "\u015D",
    "\u015E", "\u015F", "\u0160", "\u0161", "\u0162", "\u0163", "\u0164", "\u0165", "\u0166", "\u0167", "\u0168", "\u0169", "\u016A", "\u016B", "\u016C", "\u016D", "\u016E", "\u016F", "\u0170", "\u0171", "\u0172", "\u0173", "\u0174", "\u0175", "\u0176", "\u0177", "\u0178", "\u0179", "\u017A", "\u017B", "\u017C", "\u017D", "\u017E", "\u017F", "\u0180", "\u0181", "\u0182", "\u0183", "\u0184", "\u0185", "\u0186", "\u0187", "\u0188", "\u0189", "\u018A", "\u018B", "\u018C", "\u018D", "\u018E", "\u018F",
    "\u0190", "\u0191", "\u0192", "\u0193", "\u0194", "\u0195", "\u0196", "\u0197", "\u0198", "\u0199", "\u019A", "\u019B", "\u019C", "\u019D", "\u019E", "\u019F", "\u01A0", "\u01A1", "\u01A2", "\u01A3", "\u01A4", "\u01A5", "\u01A6", "\u01A7", "\u01A8", "\u01A9", "\u01AA", "\u01AB", "\u01AC", "\u01AD", "\u01AE", "\u01AF", "\u01B0", "\u01B1", "\u01B2", "\u01B3", "\u01B4", "\u01B5", "\u01B6", "\u01B7", "\u01B8", "\u01B9", "\u01BA", "\u01BB", "\u01BC", "\u01BD", "\u01BE", "\u01BF", "\u01C0", "\u01C1",
    "\u01C2", "\u01C3", "\u01C4", "\u01C5", "\u01C6", "\u01C7", "\u01C8", "\u01C9", "\u01CA", "\u01CB", "\u01CC", "\u01CD", "\u01CE", "\u01CF", "\u01D0", "\u01D1", "\u01D2", "\u01D3", "\u01D4", "\u01D5", "\u01D6", "\u01D7", "\u01D8", "\u01D9", "\u01DA", "\u01DB", "\u01DC", "\u01DD", "\u01DE", "\u01DF", "\u01E0", "\u01E1", "\u01E2", "\u01E3", "\u01E4", "\u01E5", "\u01E6", "\u01E7", "\u01E8", "\u01E9", "\u01EA", "\u01EB", "\u01EC", "\u01ED", "\u01EE", "\u01EF", "\u01F0", "\u01F1", "\u01F2", "\u01F3",
    "\u01F4", "\u01F5", "\u01F6", "\u01F7", "\u01F8", "\u01F9", "\u01FA", "\u01FB", "\u01FC", "\u01FD", "\u01FE", "\u01FF", "\u0200", "\u0201", "\u0202", "\u0203", "\u0204", "\u0205", "\u0206", "\u0207", "\u0208", "\u0209", "\u020A", "\u020B", "\u020C", "\u020D", "\u020E", "\u020F", "\u0210", "\u0211", "\u0212", "\u0213", "\u0214", "\u0215", "\u0216", "\u0217", "\u0218", "\u0219", "\u021A", "\u021B", "\u021C", "\u021D", "\u021E", "\u021F", "\u0220", "\u0221", "\u0222", "\u0223", "\u0224", "\u0225",
    "\u0226", "\u0227", "\u0228", "\u0229", "\u022A", "\u022B", "\u022C", "\u022D", "\u022E", "\u022F", "\u0230", "\u0231", "\u0232", "\u0233", "\u0234", "\u0235", "\u0236", "\u0237", "\u0238", "\u0239", "\u023A", "\u023B", "\u023C", "\u023D", "\u023E", "\u023F", "\u0240", "\u0241", "\u0242", "\u0243", "\u0244", "\u0245", "\u0246", "\u0247", "\u0248", "\u0249", "\u024A", "\u024B", "\u024C", "\u024D", "\u024E", "\u024F", "\u0250", "\u0251", "\u0252", "\u0253", "\u0254", "\u0255", "\u0256", "\u0257",
    "\u0258", "\u0259", "\u025A", "\u025B", "\u025C", "\u025D", "\u025E", "\u025F", "\u0260", "\u0261", "\u0262", "\u0263", "\u0264", "\u0265", "\u0266", "\u0267", "\u0268", "\u0269", "\u026A", "\u026B", "\u026C", "\u026D", "\u026E", "\u026F", "\u0270", "\u0271", "\u0272", "\u0273", "\u0274", "\u0275", "\u0276", "\u0277", "\u0278", "\u0279", "\u027A", "\u027B", "\u027C", "\u027D", "\u027E", "\u027F", "\u0280", "\u0281", "\u0282", "\u0283", "\u0284", "\u0285", "\u0286", "\u0287", "\u0288", "\u0289",
    "\u028A", "\u028B", "\u028C", "\u028D", "\u028E", "\u028F", "\u0290", "\u0291", "\u0292", "\u0293", "\u0294", "\u0295", "\u0296", "\u0297", "\u0298", "\u0299", "\u029A", "\u029B", "\u029C", "\u029D", "\u029E", "\u029F", "\u02A0", "\u02A1", "\u02A2", "\u02A3", "\u02A4", "\u02A5", "\u02A6", "\u02A7", "\u02A8", "\u02A9", "\u02AA", "\u02AB", "\u02AC", "\u02AD", "\u02AE", "\u02AF", "\u02B0", "\u02B1", "\u02B2", "\u02B3", "\u02B4", "\u02B5", "\u02B6", "\u02B7", "\u02B8", "\u02B9", "\u02BA", "\u02BB",
    "\u02BC", "\u02BD", "\u02BE", "\u02BF", "\u02C0", "\u02C1", "\u02C2", "\u02C3", "\u02C4", "\u02C5", "\u02C6", "\u02C7", "\u02C8", "\u02C9", "\u02CA", "\u02CB", "\u02CC", "\u02CD", "\u02CE", "\u02CF", "\u02D0", "\u02D1", "\u02D2", "\u02D3", "\u02D4", "\u02D5", "\u02D6", "\u02D7", "\u02D8", "\u02D9", "\u02DA", "\u02DB", "\u02DC", "\u02DD", "\u02DE", "\u02DF", "\u02E0", "\u02E1", "\u02E2", "\u02E3", "\u02E4", "\u02E5", "\u02E6", "\u02E7", "\u02E8", "\u02E9", "\u02EA", "\u02EB", "\u02EC", "\u02ED",
    "\u02EE", "\u02EF", "\u02F0", "\u02F1", "\u02F2", "\u02F3", "\u02F4", "\u02F5", "\u02F6", "\u02F7", "\u02F8", "\u02F9", "\u02FA", "\u02FB", "\u02FC", "\u02FD", "\u02FE", "\u02FF", "\u0300", "\u0301", "\u0302", "\u0303", "\u0304", "\u0305", "\u0306", "\u0307", "\u0308", "\u0309", "\u030A", "\u030B", "\u030C", "\u030D", "\u030E", "\u030F", "\u0310", "\u0311", "\u0312", "\u0313", "\u0314", "\u0315", "\u0316", "\u0317", "\u0318", "\u0319", "\u031A", "\u031B", "\u031C", "\u031D", "\u031E", "\u031F",
    "\u0320", "\u0321", "\u0322", "\u0323", "\u0324", "\u0325", "\u0326", "\u0327", "\u0328", "\u0329", "\u032A", "\u032B", "\u032C", "\u032D", "\u032E", "\u032F", "\u0330", "\u0331", "\u0332", "\u0333", "\u0334", "\u0335", "\u0336", "\u0337", "\u0338", "\u0339", "\u033A", "\u033B", "\u033C", "\u033D", "\u033E", "\u033F", "\u0340", "\u0341", "\u0342", "\u0343", "\u0344", "\u0345", "\u0346", "\u0347", "\u0348", "\u0349", "\u034A", "\u034B", "\u034C", "\u034D", "\u034E", "\u034F", "\u0350", "\u0351",
    "\u0352", "\u0353", "\u0354", "\u0355", "\u0356", "\u0357", "\u0358", "\u0359", "\u035A", "\u035B", "\u035C", "\u035D", "\u035E", "\u035F", "\u0360", "\u0361", "\u0362", "\u0363", "\u0364", "\u0365", "\u0366", "\u0367", "\u0368", "\u0369", "\u036A", "\u036B", "\u036C", "\u036D", "\u036E", "\u036F", "\u0370", "\u0371", "\u0372", "\u0373", "\u0374", "\u0375", "\u0376", "\u0377", "\u0378", "\u0379", "\u037A", "\u037B", "\u037C", "\u037D", "\u037E", "\u037F", "\u0380", "\u0381", "\u0382", "\u0383",
    "\u0384", "\u0385", "\u0386", "\u0387", "\u0388", "\u0389", "\u038A", "\u038B", "\u038C", "\u038D", "\u038E", "\u038F", "\u0390", "\u0391", "\u0392", "\u0393", "\u0394", "\u0395", "\u0396", "\u0397", "\u0398", "\u0399", "\u039A", "\u039B", "\u039C", "\u039D", "\u039E", "\u039F", "\u03A0", "\u03A1", "\u03A2", "\u03A3", "\u03A4", "\u03A5", "\u03A6", "\u03A7", "\u03A8", "\u03A9", "\u03AA", "\u03AB", "\u03AC", "\u03AD", "\u03AE", "\u03AF", "\u03B0", "\u03B1", "\u03B2", "\u03B3", "\u03B4", "\u03B5",
    "\u03B6", "\u03B7", "\u03B8", "\u03B9", "\u03BA", "\u03BB", "\u03BC", "\u03BD", "\u03BE", "\u03BF", "\u03C0", "\u03C1", "\u03C2", "\u03C3", "\u03C4", "\u03C5", "\u03C6", "\u03C7", "\u03C8", "\u03C9", "\u03CA", "\u03CB", "\u03CC", "\u03CD", "\u03CE", "\u03CF", "\u03D0", "\u03D1", "\u03D2", "\u03D3", "\u03D4", "\u03D5", "\u03D6", "\u03D7", "\u03D8", "\u03D9", "\u03DA", "\u03DB", "\u03DC", "\u03DD", "\u03DE", "\u03DF", "\u03E0", "\u03E1", "\u03E2", "\u03E3", "\u03E4", "\u03E5", "\u03E6", "\u03E7")

  names(entity.ids) <- entity.names

  esc.text <- entity.ids[text]
  if(isTRUE(collapse)){
    esc.text <- paste(esc.text, collapse="")
  } else {}

  return(esc.text)
}
saurfang/roxyPackage documentation built on May 29, 2019, 3:20 p.m.